package models.domain;

import models.data.Athugasemdir;
import models.data.Notendur;
import models.data.Verkefni;
import play.data.validation.Constraints;
import play.db.ebean.Model;

import java.text.SimpleDateFormat;
import java.util.*;

/**
 * Created with IntelliJ IDEA.
 * User: olgak
 * Date: 22.3.2013
 * Time: 17:31
 * To change this template use File | Settings | File Templates.
 */
public class Comments {
    private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm");

    public int athugasemd_id;
    @Constraints.Required
    public String texti;
    public int verkefni_id;
    public String notandi_id;
    public String name;
    public Date dagsetning_stofnad;
    public String stofnad_stengur;
    public String verkefni_nafn;
    public Integer hopur_id;

    public Comments() {
    }

    public Comments(int athugasemd_id, String texti, int verkefni_id, String notandi_id, Date dagsetning_stofnad,Integer hopur_id) {
        this.athugasemd_id = athugasemd_id;
        this.texti = texti;
        this.verkefni_id = verkefni_id;
        this.notandi_id = notandi_id;
        this.dagsetning_stofnad = dagsetning_stofnad;
        this.hopur_id=hopur_id;
    }

    public Comments createComment(int athugasemd_id, String texti, int verkefni_id, String notandi_id, Date dagsetning_stofnad,Integer hopur_id) {
        Comments comment = new Comments(athugasemd_id, texti, verkefni_id, notandi_id, dagsetning_stofnad,hopur_id);
        String nafn = Notendur.findNameFromNotandiId(notandi_id);
        comment.setName(nafn);
        return comment;
    }

    public static Model.Finder<Integer,Comments> find = new Model.Finder<Integer,Comments>(
            Integer.class, Comments.class
    );

    public static List<Comments> createCommentList (List<Athugasemdir> athugasemdir){
        List<Comments> commentList = new ArrayList<Comments>();
        for(Athugasemdir athugasemd : athugasemdir) {
            Comments comment = new Comments (athugasemd.athugasemd_id, athugasemd.texti, athugasemd.verkefni_id, athugasemd.notandi_id, athugasemd.dagsetning_stofnad,athugasemd.hopur_id);
            String nafn = Notendur.findNameFromNotandiId(athugasemd.notandi_id);
            comment.setName(nafn);
            Verkefni verkefni = Verkefni.findProjectByVerkefniID(athugasemd.verkefni_id);
            String upphafs = simpleDateFormat.format(athugasemd.dagsetning_stofnad);
            comment.setVerkefni_nafn(verkefni.heiti);
            comment.setStofnad_stengur(upphafs);
            commentList.add(comment);
        }
        Collections.sort(commentList, new Comparator<Comments>() {
            @Override
            public int compare(Comments o1, Comments o2) {
                if (o1.dagsetning_stofnad == null || o2.dagsetning_stofnad == null)
                    return 0;
                return o1.dagsetning_stofnad.compareTo(o2.dagsetning_stofnad);
            }
        });
        return commentList;
    }
    public String getTexti() {
        return texti;
    }

    public void setTexti(String texti) {
        this.texti = texti;
    }

    public int getVerkefni_id() {
        return verkefni_id;
    }

    public void setVerkefni_id(int verkefni_id) {
        this.verkefni_id = verkefni_id;
    }

    public String getNotandi_id() {
        return notandi_id;
    }

    public void setKennitala(String notandi_id) {
        this.notandi_id = notandi_id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getVerkefni_nafn() {
        return verkefni_nafn;
    }

    public void setVerkefni_nafn(String verkefni_nafn) {
        this.verkefni_nafn = verkefni_nafn;
    }

    public String getStofnad_stengur_nafn() {
        return stofnad_stengur;
    }

    public void setStofnad_stengur(String stofnad_stengur) {
        this.stofnad_stengur = stofnad_stengur;
    }

    public Integer getHopur_id() {
        return hopur_id;
    }

    public void setHopur_id(Integer hopur_id) {
        this.hopur_id = hopur_id;
    }

    //@Override
    public int compareTo(Comments t){
        return dagsetning_stofnad.compareTo(t.dagsetning_stofnad);
    }

    public int compare(Date verkefni1, Date verkefni2){

        return verkefni2.compareTo(verkefni1);
    }

}
